cmd/fdt: Make fdt get value endian-safe for single-cell properties
authorAndreas Färber <[email protected]>
Mon, 9 Jan 2017 15:08:02 +0000 (16:08 +0100)
committerSimon Glass <[email protected]>
Sat, 14 Jan 2017 17:09:46 +0000 (10:09 -0700)
commitb05bf6c75d03c925737e228472b694cbeaa503c2
tree22ed1bd68550422392a5b28759d81257a20d3e17
parent082b1414e80ffa94569613705eac319488324516
cmd/fdt: Make fdt get value endian-safe for single-cell properties

On a Raspberry Pi 2 disagreements on cell endianness can be observed:

  U-Boot> fdt print /soc/gpio@7e200000 phandle
  phandle = <0x0000000d>
  U-Boot> fdt get value myvar /soc/gpio@7e200000 phandle; printenv myvar
  myvar=0x0D000000

Fix this by always treating the pointer as BE and converting it in
fdt_value_setenv(), like its counterpart fdt_parse_prop() already does.

Consistently use fdt32_t, fdt32_to_cpu() and cpu_to_fdt32().

Fixes: bc80295 ("fdt: Add get commands to fdt")
Cc: Joe Hershberger <[email protected]>
Cc: Gerald Van Baren <[email protected]>
Signed-off-by: Andreas Färber <[email protected]>
Acked-by: Simon Glass <[email protected]>
cmd/fdt.c